package org.logsin37.tool.eurekamanager.domain.entity;

import java.util.Map;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.logsin37.tool.eurekamanager.infra.constant.EurekaInstanceStatus;

/**
 * Eureka Instance
 *
 * @author logsin37 2020/01/19 16:25
 */
@Getter
@Setter
@Accessors(chain = true)
@ToString(doNotUseGetters = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class EurekaInstance {

    private String instanceId;

    private String hostName;

    private String app;

    private String ipAddr;

    private EurekaInstanceStatus status;

    private String overriddenStatus;

    private EurekaInstancePort port;

    private EurekaInstancePort securePort;

    private Long countryId;

    private EurekaInstanceDataCenterInfo dataCenterInfo;

    private EurekaInstanceLeaseInfo leaseInfo;

    private Map<String, String> metadata;

    private String homePageUrl;

    private String statusPageUrl;

    private String healthCheckUrl;

    private String vipAddress;

    private String secureVipAddress;

    private String isCoordinatingDiscoveryServer;

    private String lastUpdatedTimestamp;

    private String lastDirtyTimestamp;

    private String actionType;

}
